package org.afs.gescol.core.service.interfaces;

import org.afs.gescol.core.dto.subject.SubjectAssignmentDto;

/**
 * Services for managing subjects.
 * @autor Kobla GBENYO (kobla.gbenyo@gmail.com)
 */
public interface SubjectManagementServices {

    /**
     * Create a new subject assignment or update it if exists.
     * @param assignment the assignment to create or update
     * @return the created or updated assignment
     */
    SubjectAssignmentDto createOrUpdateSubjectAssignment(SubjectAssignmentDto assignment);

    /**
     * Remove subject assignment.
     * @param subjectAssignmentId subject assignment to remove Id
     */
    void removeSubjectAssignment(Long subjectAssignmentId);
}
